/***
 * Dart 函数参数
 *  必填参数:
 *   1. 参数类型 参数名称
 *  可选参数:
 *   1. 必须放在参数后面
 *   2. 通过中括号包裹起来
 *   3. 带默认值的可选参数
 *  命名参数: 
 *   1. 用大括号包裹起来
 *   2. 调用函数时，明明参数的名称与声明函数中的名称需要保持一致
 */

// 函数参数
void printText(text) {
  print(text);
}

// 可选参数
void printTextPerson(name, [int? age, String fullName = 'no fullName']) {
  print('name: $name; age: $age; fullName: $fullName');
}

// 命名参数
void printAnimalInfo(String name, {int? age, dynamic fullName}) {
  print('name: $name; age: $age; fullName: $fullName');
}

void main() {
  printText('必填参数');
  printTextPerson('可选参数', 10);
  printTextPerson('可选参数', 10, '可选参数1');
  printAnimalInfo('命名参数', fullName: "命名参数1");
  printAnimalInfo('命名参数', fullName: "命名参数2", age: 25);
}
